package com.veer.shop.config;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

import org.apache.commons.collections4.map.HashedMap;

/**
 * 系统实体编号生成格式配置类
 * 
 * @author WangBin
 * @date 2020年10月19日-下午3:15:01
 */
public class BnBuilderConfig {
	// 订单编号格式Key
	public final static String BN_BUILDER_KEY_SALES_ORDER = "SALES_ORDER";
	// 会员编号格式Key
	public final static String BN_BUILDER_KEY_CUSTOMER = "CUSTOMER";
	// 编号生成器自增计数的key - 订单编号
	public static final String REDIS_SUFFIX_SALES_ORDER_BN = "veer:sales:order:bn:";
	// 编号生成器自增计数的key - 会员编号
	public static final String REDIS_SUFFIX_CUSTOMER_BN = "veer:customer:bn:";
	// 编号自增计数器有效期时间 - 24小时 - 毫秒数
	public static final long REDIS_BN_COUNTER_LIFE_TIME = 24 * 60 * 60 * 1000;
	
	// 编号格式配置Map
	public final static Map<String, List<String>> BN_BUILDER_FORMAT_MAP = new HashedMap<String, List<String>>();
	
	static {
		// 销售订单编号
		BN_BUILDER_FORMAT_MAP.put(BN_BUILDER_KEY_SALES_ORDER, Arrays.asList("SO[yyMMdd][5]", REDIS_SUFFIX_SALES_ORDER_BN));
		// 会员编号
		BN_BUILDER_FORMAT_MAP.put(BN_BUILDER_KEY_CUSTOMER, Arrays.asList("CU[yyMMdd][5]", REDIS_SUFFIX_CUSTOMER_BN));
	}
}
